/*************************************************************************
	> File Name: Example6_5.java
	> Author: Potter
	> Mail: tobewhatwewant@gmail.com 
	> Created Time: 2014年07月08日 星期二 13时01分32秒
 ************************************************************************/

/* 接口参数:
 *    double float long int byte 向下兼容
 *  
 *    如果一个方法的参数是接口类型，我们就可以将任何实现该接口的类的实例的
 *  引用传递给该接口参数，那么接口参数就可以回调类实现的接口方法.
 *
 * */

interface SpeakHello {
    void speakHello();
    // public abstract void speakHello();
}

class Chinese implements SpeakHello {
    public void speakHello() {
        System.out.println("中国人习惯问候语：你好，吃放了吗？");
    }
}

class English implements SpeakHello {
    public void speakHello() {
        System.out.println("英国人习惯问候语：你好，天气不错！");
    }
}

class KindHello {
    public void lookHello(SpeakHello hello) { // 接口参数类型
        hello.speakHello(); // 接口回调
    }
}

public class Example6_5 {
    public static void main(String args[]) {
        KindHello kindHello = new KindHello();

        kindHello.lookHello(new Chinese());
        kindHello.lookHello(new English());
    }
}
